맨위로가기

통합 개발 환경

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

통합 개발 환경(IDE)은 소프트웨어 개발을 위한 응용 프로그램으로, 코드 편집, 빌드 자동화, 디버깅, 버전 관리, 리팩토링, 코드 검색, GUI 개발 지원, 팀 개발 지원, 모듈 관리 등의 기능을 통합적으로 제공한다. 초기에는 콘솔 환경에서 시작되었지만, GUI의 발전과 함께 그래픽 기반 IDE가 대중화되었다. 다양한 프로그래밍 언어를 지원하며, 이클립스, 비주얼 스튜디오, IntelliJ IDEA, 엑스코드 등이 주요 IDE로 사용된다. 또한, 온라인 IDE도 존재하여 웹 브라우저에서 접근하여 사용할 수 있다. 유닉스, 윈도우, macOS 등 다양한 플랫폼에서 활용되며, 게임 개발 환경에서도 특정 콘솔 제조사에서 제공하는 독자적인 개발 환경 또는 유니티나 언리얼 엔진과 같은 멀티플랫폼 미들웨어가 사용된다.

더 읽어볼만한 페이지

  • 통합 개발 환경 - 터보 파스칼
    필립 칸이 개발하고 안데르스 헤일스베르그가 기반을 다진 터보 파스칼은 저렴한 가격, 빠른 컴파일, 사용하기 쉬운 IDE를 특징으로 1980년대 PC 프로그래밍에 혁신을 가져왔으며, 여러 기능 추가를 거쳐 델파이 등장 후 레거시 기술이 되었고 일부 버전은 프리웨어로 배포된다.
  • 통합 개발 환경 - IntelliJ IDEA
    IntelliJ IDEA는 JetBrains에서 개발한 자바 통합 개발 환경(IDE)으로, 코드 탐색 및 리팩토링 기능으로 주목받았으며, 다양한 개발 환경의 기반이 되었고, Java, Scala, Kotlin 등을 지원한다.
  • 소프트웨어 공학 - 소프트웨어 개발
    소프트웨어 개발은 요구사항 분석, 설계, 코딩, 테스트, 배포, 유지보수를 포함하는 컴퓨터 프로그램 및 관련 데이터를 만드는 과정으로, 다양한 방법론과 도구가 사용되며, 개발자 외에도 다양한 전문가들이 참여한다.
  • 소프트웨어 공학 - 브룩스의 법칙
    브룩스의 법칙은 소프트웨어 개발 프로젝트 후반에 인력을 추가하면 프로젝트가 지연된다는 법칙으로, 지연된 프로젝트에 인력을 추가하는 것이 단기적으로 팀 생산성을 저하시키고 커뮤니케이션 비용을 증가시키기 때문에 발생한다.
통합 개발 환경
지도 정보
기본 정보
개발 환경
구성 요소소스 코드 편집기
컴파일러 또는 인터프리터
빌드 자동화 도구
디버거
기능소스 코드 편집
컴파일 및 빌드
디버깅
버전 관리
테스트
장점개발 생산성 향상
코드 품질 향상
협업 용이
개발 프로세스 간소화
종류
주요 IDEEclipse
Visual Studio
IntelliJ IDEA
NetBeans
Xcode
Android Studio
언어 지원C
C++
Java
C 샤프
Python
JavaScript
PHP
Ruby
Go
Kotlin
Swift
기타 다양한 언어 지원
플랫폼 지원Windows
macOS
Linux
기타 다양한 운영 체제 지원
특징다양한 플러그인 및 확장 기능 지원
코드 자동 완성 기능
코드 리팩토링 기능
형상 관리 기능 (git)
UI 디자인 기능 (일부 IDE)
기타
빌드 자동화 도구 연동Maven
Gradle
Ant
기타 빌드 자동화 도구
버전 관리 시스템 연동Git
Subversion
Mercurial
기타 버전 관리 시스템
소프트웨어 테스트 도구 연동JUnit
TestNG
기타 테스트 도구

2. 역사

콘솔이나 터미널을 통해 개발이 가능해지면서 IDE가 등장했다. 초기 시스템들은 천공 카드나 종이 테이프 등으로 프로그램을 입력하고 컴파일러에 제출하는 방식이었기 때문에 IDE를 지원하지 못했다. 다트머스 베이직은 IDE와 통합된 최초의 언어로 간주된다. 이 IDE는 명령어 기반이었기 때문에 그래픽 사용자 인터페이스(GUI)의 출현 이후에 대중화된 메뉴 구동식의 그래피컬한 IDE와는 달랐다. 그러나 편집, 파일 관리, 컴파일, 디버그, 실행 기능을 통합하여 제공하였다.[23]

마에스테로 I은 Softlab Munich의 제품으로, 세계 최초의 소프트웨어 통합 개발 환경이었다. 마에스테로 I은 전 세계 22,000명의 프로그래머들이 설치, 사용했다. 1989년까지 서독 연방 공화국에 6,000개가 설치되었다.

플러그인 개념을 도입한 최초의 IDE들 가운데 하나는 소프트벤치이다.

2015년 3월 기준으로 가장 대중적인 IDE로는 이클립스, 비주얼 스튜디오, IntelliJ가 있다.[24] 2023년 8월 기준으로 구글 검색에서 가장 많이 검색된 IDE는 비주얼 스튜디오, 비주얼 스튜디오 코드, 이클립스였다.[2]

3. 주요 기능

통합 개발 환경(IDE)은 소프트웨어 개발 효율성을 높이기 위해 다양한 기능을 제공한다.


  • 프로그래머 생산성 극대화: IDE는 사용자 인터페이스가 비슷한 구성 요소들을 긴밀하게 통합하여 프로그래머의 생산성을 극대화한다. 소프트웨어 작성, 수정, 컴파일, 배포, 디버깅 등 모든 개발 작업을 단일 프로그램에서 수행할 수 있다.
  • 설정 시간 단축: 여러 개발 도구를 조합하는 데 필요한 구성을 줄이고, 하나의 통합된 환경에서 동일한 기능을 제공한다. 개별 도구를 통합하고 배우는 것보다 IDE 사용법을 익히는 것이 더 빠르므로, 설정 시간을 단축하여 생산성을 높인다.
  • 지속적인 구문 분석: 코드 편집 중 실시간으로 구문을 분석하여 오류 발생 시 즉각적인 피드백을 제공하므로, 코드를 더 빠르고 쉽게 디버깅할 수 있다.


IDE는 특정 프로그래밍 언어에 특화되어 해당 언어의 프로그래밍 패러다임에 맞는 기능을 제공하기도 하고, 여러 언어를 지원하는 다중 언어 IDE도 있다. 최신 IDE는 대부분 그래픽 기반이지만, Microsoft Windows나 X 윈도우 시스템(X11) 같은 윈도잉 시스템 이전에는 터보 파스칼처럼 텍스트 기반 IDE가 널리 쓰였다. 텍스트 기반 IDE는 기능 키나 단축키를 사용하여 명령을 실행한다.

IDE는 다음과 같은 주요 기능을 제공한다.

  • 코드 편집: 구문 강조 기능을 통해 구조, 키워드, 구문 오류를 시각적으로 구분되는 색상과 글꼴 효과로 표시한다.[3] 스마트 코드 완성 기능은 프로그래밍 속도를 높인다.
  • 빌드 자동화: 소스 코드를 컴파일하고 링크하여 실행 가능한 프로그램으로 만드는 빌드 과정을 자동화한다.
  • 디버깅: 디버거와 연동되어 소스 코드에 중단점을 설정하거나, 변수 값을 확인하면서 코드를 한 줄씩 실행하여 문제점을 찾도록 돕는다.[24]
  • 버전 관리: CVS, 서브버전, 같은 버전 관리 시스템을 통합하여 제공한다.[3]
  • 리팩토링: 코드 가독성과 유지보수성을 높이는 다양한 리팩토링 기능을 제공한다.
  • 코드 검색: 클래스, 함수 선언 및 사용, 변수 및 필드 읽기/쓰기 등을 검색하는 기능을 제공한다.[5][6]
  • GUI 개발 지원: WYSIWYG를 지원하는 그래픽 비주얼 에디터를 통합하여 GUI 생성을 시각적이고 직관적으로 수행하도록 돕는다.
  • 팀 개발 지원: 코드 서식 규칙을 관리하고, 작업 관리 도구, 테스트 케이스 관리 도구 등과 연동하여 팀 개발을 지원한다.[20]
  • 모듈 관리: 대규모 소프트웨어 개발 시 프로그램을 기능별 모듈로 나누어 관리하도록 돕는다.[18]

3. 1. 코드 편집

통합 개발 환경(IDE)의 코드 편집기는 프로그래밍에 특화되어 있다. 각 언어의 키워드(예약어)를 강조(색상 구분)하거나, 프로젝트 내의 소스 파일 및 헤더 파일에서 추출한 분석된 심볼 정보 데이터베이스를 기반으로 사용자 정의 데이터 형식이나 변수, 서브루틴(함수/메서드)의 이름(식별자)을 자동 완성하는 기능을 제공한다. 이를 통해 소스 코드 작성 효율이 향상되고 코딩 실수를 방지하는 데 도움이 된다.[21]

Vim에 통합된 자동완성 및 외부 플러그인을 통한 lint 기능


일반적으로 구문 강조 기능을 제공하며, 구조, 언어 키워드, 구문 오류를 시각적으로 구분되는 색상과 글꼴 효과로 표시할 수 있다.[3] 코드 완성은 프로그래밍 속도를 높이기 위한 중요한 IDE 기능이며, 최신 IDE는 스마트 코드 완성 기능까지 제공한다.

일부 IDE에서는 실제로 컴파일하지 않고도 실시간으로 소스 코드를 분석하여 구문 오류나 경고를 감지하고, 해당 부분에 밑줄을 긋는 방식으로 프로그래머에게 알려준다. 또한, 소스 코드 주석 앞에 "TODO"와 같은 특정 문자열을 입력하면 IDE에서 이를 목록으로 표시하여 확인할 수 있다.[21]

3. 2. 빌드 자동화

IDE는 소스 코드를 컴파일하고 링크하여 실행 가능한 프로그램으로 만드는 빌드 과정을 자동화하는 기능을 제공한다.

하나의 소프트웨어를 만들기 위해서는 프로그래밍 언어의 소스 코드 파일, 아이콘 이미지나 현지화된 텍스트 등의 리소스 파일, 그리고 빌드 설정 관리 파일 등 여러 파일이 필요하다.[18] 자동화된 빌드 시스템에서는 이러한 파일들을 통틀어 "프로젝트"로 취급하여 일괄적으로 관리한다. IDE에서는 빌드 시스템의 프로젝트 파일을 직접 편집하지 않고도 시각적이고 직관적으로 조작 및 관리할 수 있도록 돕는다.[18]

복잡한 소프트웨어에서는 재사용성 및 유지보수성 등을 고려하여 프로그램을 기능별로 분류된 부품(모듈)으로 분할하여 관리한다. 일반적인 빌드 시스템에서는 모듈별로 프로젝트 파일을 생성하고, 여러 프로젝트 파일과 그들의 종속 관계를 통합 관리할 수 있는 "워크스페이스 파일"을 지원한다.[18] IDE에서는 이러한 세부 사양을 의식하지 않고도 직관적으로 모듈을 관리할 수 있으며, 프로젝트를 새로 생성할 때도 마법사의 안내에 따라 파일 일체를 간단하게 자동 생성할 수 있다.

3. 3. 디버깅

IDE는 디버거와 연동되어 소스 코드에 시각적인 중단점을 설정하여 소프트웨어의 동작을 일시 중지하거나, 변수의 내용을 확인하면서 소스 코드를 한 줄씩 단계 실행하여 문제가 있는 부분을 찾는 등의 작업을 직관적으로 수행할 수 있게 한다.[24] 코드는 편집 중에 지속적으로 구문 분석될 수 있으므로 구문 오류가 발생할 때 즉각적인 피드백을 제공하여 개발자가 IDE를 사용하여 코드를 훨씬 빠르고 쉽게 디버깅할 수 있다.

3. 4. 버전 관리

통합 개발 환경(IDE)은 버전 관리 기능을 통합하여 제공한다.[3] 소프트웨어 개발에서는 소스 코드 관리를 위해 CVS, 서브버전, 과 같은 버전 관리 시스템을 자주 사용한다. 많은 IDE는 체크아웃, 커밋, 리버트(버전 되돌리기) 등 버전 관리 시스템에 대한 조작을 간편하게 실행할 수 있도록 지원한다.

3. 5. 리팩토링

리팩토링은 프로그램의 외부 동작을 변경하지 않으면서 내부 구조를 개선하는 작업이다. 자동화된 리팩토링 도구를 통해 코드의 가독성과 유지보수성을 높일 수 있다. 변수나 함수 이름 변경, 메서드 추출, 클래스 이동 등 다양한 리팩토링 기능을 제공한다.

3. 6. 코드 검색

코드 검색은 두 가지 다른 의미를 가질 수 있다. 첫째, 클래스 및 함수 선언, 사용, 변수 및 필드 읽기/쓰기 등을 검색하는 것을 의미한다. IDE은 코드 검색을 위해 다양한 종류의 사용자 인터페이스를 사용할 수 있다. 예를 들어, 폼 기반 위젯[5]과 자연어 기반 인터페이스가 있다. 둘째, 특정 기능의 구현을 검색하는 것을 의미한다.[6]

3. 7. GUI 개발 지원

그래픽 사용자 인터페이스(GUI)를 갖춘 소프트웨어를 개발할 때, 각 위젯(부품)의 위치나 크기 등 속성 정보는 보통 전용 레이아웃 설정 파일을 사용하여 기술한다. 레이아웃 설정 파일은 XML 형식 또는 고유한 계층 구조 텍스트 형식을 사용하지만, 텍스트 편집기로 GUI 정의를 기술하는 것은 번거롭다. 또한, 프로그램을 빌드하고 실행해야만 화면 표시 결과를 확인할 수 있어 직관적이지 않고 효율도 떨어진다.

따라서 많은 IDE는 GUI 생성을 IDE 상에서 시각적이고 직관적으로 수행할 수 있도록 WYSIWYG를 지원하는 그래픽적인 비주얼 에디터를 통합하고 있다. 위젯 조작 시 발생하는 이벤트에 대한 처리(이벤트 핸들러) 코드도 코드 에디터와 연동·동기화할 수 있다. 이를 통해 GUI를 갖춘 소프트웨어를 쉽게 개발하고, 관리를 일괄적으로 수행할 수 있다. 일부 IDE는 GUI 생성 소프트웨어를 분리하기도 한다.

3. 8. 팀 개발 지원

일부 IDE는 코드 서식 규칙을 프로젝트 단위 또는 소스 트리 단위로 관리할 수 있다.[20] 팀 개발 시, 각 개발자가 동일한 IDE와 동일한 규칙 설정 파일을 사용함으로써 코딩 스타일의 통일을 용이하게 할 수 있다.

작업 관리 도구나 테스트 케이스 관리 도구 등과 연동하여 소프트웨어 개발 프로젝트의 진행 관리를 포함한 종합적인 팀 개발을 지원하는 엔터프라이즈급 기능을 갖춘 IDE도 있다.

3. 9. 모듈 관리

대규모 소프트웨어 개발 시, 프로그램을 기능별 모듈로 분할하여 관리하면 재사용성 및 유지보수성을 높일 수 있다. 일반적인 빌드 시스템에서는 모듈별로 프로젝트 파일을 생성하고, 여러 프로젝트 파일과 그들의 종속 관계를 통합 관리할 수 있는 "워크스페이스 파일"을 지원한다.[18] 프로젝트 파일이나 워크스페이스 파일은 개별 빌드 시스템에 따라 파일 형식이나 확장자가 다르다.[19] Gradle과 같이 파일 시스템 상에 빌드 스크립트가 위치한 디렉토리 구조 자체를 프로젝트나 워크스페이스로 취급하는 빌드 시스템도 있지만, 통합 개발 환경(IDE)에서는 그러한 세부 사양을 의식하지 않고도 직관적으로 모듈을 관리할 수 있으며, 프로젝트를 새로 생성할 때도 마법사의 안내에 따라 파일 일체를 간단하게 자동 생성할 수 있다.

4. 언어 지원

IDE는 특정 프로그래밍 언어에 특화된 기능을 제공하거나, 플러그인을 통해 다양한 언어를 지원할 수 있다. 이클립스, 비주얼 스튜디오, IntelliJ IDEA 등은 여러 프로그래밍 언어를 지원하는 대표적인 IDE이다.[24]

이클립스와 넷빈즈C/C++, Ada, GNAT(예: AdaGIDE), , 파이썬, 루비PHP에 대한 플러그인을 가지고 있으며, 파일 확장자, 환경 또는 프로젝트 설정에 따라 자동으로 선택된다. GNU 이맥스 24용 최신 실시간 구문 검사 확장 기능인 플라이체크는 39개 언어를 지원한다.[7] 88개 언어를 지원하는 클라우드 기반 온라인 IDE인 JDoodle도 있다.[https://www.jdoodle.com/docs/jdoodle-apis/programming-languages-and-versions]

통합 개발 환경은 다양한 언어로 구현될 수 있는데, 예를 들면 다음과 같다.

IDE구현 언어
GNU 이맥스이맥스 리스프C
인텔리J IDEA, 이클립스, 넷빈즈자바
모노디벨롭C#


5. 종류

IDE는 초기에는 콘솔이나 터미널을 통해 개발이 가능했다. 초기 시스템들은 천공 카드(또는 종이 테이프 등)로 프로그램을 입력한 후 컴파일러에 제출하는 방식이었기 때문에 IDE를 지원하지 못했다. 다트마우스 베이직은 IDE와 통합된 최초의 언어로, 편집, 파일 관리, 컴파일, 디버그, 실행 기능을 통합하였다.

마에스테로 I은 Softlab Munich의 제품으로, 소프트웨어를 위한 세계 최초의 통합 개발 환경이었다.[23] 플러그인 개념을 도입한 최초의 IDE들 가운데 하나는 소프트벤치이다.

2015년 3월 기준으로 가장 대중적인 IDE로는 이클립스와 비주얼 스튜디오, IntelliJ가 있다.[24]

다양한 IDE들이 여러 플랫폼과 프로그래밍 언어를 지원한다.

소프트웨어개발사플랫폼운영 체제언어라이선스
이클립스
(Eclipse)
IBM, 이클립스 재단크로스 플랫폼(자바)윈도우, 리눅스, 솔라리스, AIX, 맥 OS X자바, C, C++, PHP, JSP이클립스 공중 허가
라자루스
(Lazarus)
Lazarus team크로스 플랫폼리눅스 배포판, FreeBSD, 맥 OS X, 윈도우프리 파스칼, 파스칼 SDKGPL, GNU LGPL, 기타
안주타
(Anjuta)
GNOME 프로젝트리눅스C, C++
와이드 스튜디오
(Wide Studio)
와이드 스튜디오 프로젝트리눅스C, C++
코드블럭스
(Code::Blocks)
C, C++
Dev-C++Bloodshed SoftwareC, C++GPL GNU 일반 공중 사용 허가서
비주얼 스튜디오
(Visual Studio)
마이크로소프트Win32, win64윈도우 시리즈, macOS비주얼 베이직, 비주얼 베이직 닷넷, 비주얼 C++, 비주얼 C 샤프, F 샤프상용
코드기어 디벨로퍼 스튜디오
(Codegear Developer Studio)
코드기어Win32윈도우델파이, 오브젝트 파스칼, C++빌더상용
델파이
(Delphi)
엠바카데로 테크놀러지Win32윈도우, 안드로이드, macOS오브젝트 파스칼상용 라이선스
C++빌더
(C++ Builder)
엠바카데로 테크놀러지Win32윈도우C, C++상용 라이선스
제이빌더
(J Builder)
엠바카데로 테크놀러지스Win32윈도우JAVA
JDE
카일릭스
(Kylix)
지원 중단됨
터보 C
(Turbo C)
코드기어도스MS-DOSC, C++
볼랜드 C++ 빌더
(Boland C++ Builder)
코드기어도스MS-DOSC, C++
터보 파스칼
(Turbo Pascal)
코드기어도스MS-DOS파스칼
넷빈즈
(NetBeans)
썬 마이크로시스템즈, 넷빈즈 재단크로스 플랫폼
제이디벨로퍼
(JDeveloper)
오라클JVM자바, XML, SQL PL/SQL, HTML, 자바스크립트, BPEL, PHP사유, 자유
리얼베이직
(Real Basic)
리얼 소프트웨어크로스 플랫폼맥 OS X, 마이크로소프트 윈도우, 리눅스객체 지향 베이직사유, 자유
엑스코드
(Xcode)
애플아이폰, 매킨토시맥 OS X v10.3 (버전 1.x),C, C++, 오브젝티브-C, 오브젝티브-C++, 자바, 애플스크립트, 코코아, Carbon, GNU 파스칼, 프리 파스칼, 에이다, C#, , D, Swift혼합된 사유재산, 소프트웨어카피레프트
코드워리어크로스 플랫폼
퓨처베이직
파워 빌더
(Power Builder)
오토잇
카일릭스크로스 플랫폼
프리 파스칼프리 파스칼 팀Win32도스.윈도우프리 파스칼
델파이 포 PHP
IntelliJ IDEA젯브레인즈윈도, macOS, 리눅스자바, 코틀린, 그루비, 스칼라
터보 파스칼코드기어MS-DOS파스칼
터보 델파이코드기어MS-DOS오브젝트 파스칼학생, 아마추어, 전문가, 취미로 즐기는 프로그래머 대상
코드라이트Eran Ifrah 외크로스 플랫폼윈도우 XP SP3, 윈도우 비스타, 우분투 9.10, 맥 OS X 10.5.6C/C++GPLv2
PhpStormPHP


5. 1. 주요 IDE

(Eclipse)IBM, 이클립스 재단크로스 플랫폼 (자바)윈도우, 리눅스, 솔라리스, AIX, 맥 OS X자바, C, C++, PHP, JSP이클립스 공중 허가RAD비주얼 스튜디오
(Visual Studio)마이크로소프트Win32, win64윈도우 시리즈, macOS비주얼 베이직, 비주얼 베이직 닷넷, 비주얼 C++, 비주얼 C 샤프, F 샤프상용IntelliJ IDEA젯브레인즈윈도, macOS, 리눅스자바, 코틀린, 그루비, 스칼라엑스코드
(Xcode)애플아이폰, 매킨토시맥 OS X v10.3 (버전 1.x),C, C++, 오브젝티브-C, 오브젝티브-C++, 자바, 애플스크립트, 코코아, Carbon, GNU 파스칼, 프리 파스칼, 에이다, C#, , D, Swift혼합된 사유재산, 소프트웨어카피레프트안드로이드 스튜디오
(Android Studio)구글C/C++, Java, Kotlin을 사용한 안드로이드 애플리케이션 개발 지원.IntelliJ IDEA를 기반으로 개발됨.넷빈즈
(NetBeans)썬 마이크로시스템즈, 넷빈즈 재단크로스 플랫폼코드블럭스
(Code::Blocks)플랫폼C, C++Dev-C++Bloodshed Software플랫폼C, C++GPL GNU 일반 공중 사용 허가서코드기어 디벨로퍼 스튜디오
(Codegear Developer Studio)코드기어Win32윈도우델파이, 오브젝트 파스칼, C++빌더상용델파이
(Delphi)엠바카데로 테크놀러지Win32윈도우, 안드로이드, macOS오브젝트 파스칼상용 라이선스C++빌더
(C++ Builder)엠바카데로 테크놀러지Win32윈도우C, C++상용 라이선스제이빌더
(J Builder)엠바카데로 테크놀로지스Win32윈도우JAVA터보 C
(Turbo C)코드기어도스MS-DOSC, C++볼랜드 C++ 빌더
(Boland C++ Builder)코드기어도스MS-DOSC, C++터보 파스칼
(Turbo Pascal)코드기어도스MS-DOS파스칼제이디벨로퍼
(JDeveloper)오라클JVM자바, XML, SQL PL/SQL, HTML, 자바스크립트, BPEL, PHP사유, 자유코드워리어크로스 플랫폼파워 빌더
(Power Builder)플랫폼프리 파스칼프리 파스칼 팀Win32도스.윈도우프리 파스칼코드라이트Eran Ifrah 외크로스 플랫폼윈도우 XP SP3, 윈도우 비스타, 우분투 9.10, 맥 OS X 10.5.6C/C++GPLv2


5. 2. 기타 IDE

소프트웨어개발사플랫폼운영 체제언어라이선스
라자루스Lazarus team크로스 플랫폼리눅스 배포판, FreeBSD, 맥 OS X, 윈도우프리 파스칼, 파스칼 SDKGPL, GNU LGPL, 기타
안주타GNOME 프로젝트크로스 플랫폼리눅스C, C++GPL
코드블럭스코드블럭스크로스 플랫폼리눅스, 맥 OS X, 윈도우C, C++GPL
Dev-C++Bloodshed Software크로스 플랫폼윈도우C, C++GPL
코드라이트Eran Ifrah 외크로스 플랫폼윈도우 XP SP3, 윈도우 비스타, 우분투 9.10, 맥 OS X 10.5.6C/C++GPLv2
PhpStorm젯브레인즈크로스 플랫폼윈도우, 맥 OS X, 리눅스PHP상용


5. 3. 온라인 IDE

온라인 통합 개발 환경은 웹 IDE 또는 클라우드 IDE라고도 불리며, 브라우저 기반의 IDE로 소프트웨어나 웹 개발을 할 수 있게 해준다.[16] 온라인 IDE는 웹 브라우저를 통해 접속할 수 있어, 휴대성이 좋은 작업 환경을 제공한다. 일반적으로 전통적인 데스크톱 IDE와 동일한 모든 기능을 포함하지는 않지만, 구문 강조 표시와 같은 기본적인 IDE 기능은 대부분 제공된다.

6. 플랫폼별 IDE 활용

유닉스 계열 운영체제 프로그래머는 명령줄 POSIX 도구들을 결합하여 리눅스 커널 등 대규모 프로그램을 개발할 수 있는 통합 개발 환경을 구축할 수 있다.[8] GNU 도구 모음(GNU 컴파일러 모음(GCC), GNU 디버거(GDB), GNU 메이크 포함)은 여러 플랫폼에서 사용할 수 있는 자유 소프트웨어이다.[10]

마이크로소프트 윈도우 플랫폼에서는 개발을 위한 명령줄 도구가 거의 사용되지 않는다. 마이크로소프트(Visual C++, Platform SDK, .NET 프레임워크 SDK, nmake 유틸리티)를 포함한 Windows 주요 컴파일러 공급업체 대부분은 여전히 명령줄 도구의 무료 복사본을 제공한다.[15]

현재 macOS 프로그래머는 Xcode와 같은 네이티브 IDE와 이클립스, 넷빈즈와 같은 오픈 소스 도구 중에서 선택할 수 있다.

6. 1. 유닉스/리눅스

유닉스 계열 운영체제 프로그래머는 명령줄 POSIX 도구들을 결합하여 리눅스 커널 및 그 환경과 같은 대규모 프로그램을 개발할 수 있는 통합 개발 환경을 구축할 수 있다.[8] 이러한 의미에서 전체 유닉스 시스템이 IDE로 기능한다.[9] 자유 소프트웨어인 GNU 도구 모음(GNU 컴파일러 모음(GCC), GNU 디버거(GDB), GNU 메이크 포함)은 Windows를 포함한 여러 플랫폼에서 사용할 수 있다.[10]

"모든 것은 텍스트 스트림이다"라는 유닉스 철학에 따라, 명령줄 기반 도구를 선호하는 개발자는 표준 유닉스 및 GNU 빌드 도구를 지원하는 편집기를 사용하여 Emacs[11][12][13] 또는 Vim과 같은 프로그램으로 IDE를 구축할 수 있다. 데이터 디스플레이 디버거는 여러 텍스트 기반 디버거 표준 도구를 위한 고급 그래픽 프런트엔드로 설계되었다.

일부 프로그래머는 전체 IDE에 포함된 코드 빌드 도구보다 메이크파일 및 파생물을 관리하는 것을 선호한다. 예를 들어, PostgreSQL 데이터베이스에 기여하는 대부분의 개발자는 새로운 기능을 개발하기 위해 메이크와 GDB를 직접 사용한다.[14] 마이크로소프트 윈도우용 PostgreSQL을 Visual C++를 사용하여 빌드하는 경우에도 IDE 기능에 의존하기보다는 메이크 대신 Perl 스크립트를 사용한다.[15] Geany와 같은 일부 리눅스 IDE는 기존 빌드 작업에 대한 그래픽 프런트엔드를 제공하려고 시도한다.

6. 2. 윈도우

마이크로소프트 윈도우 플랫폼에서는 개발을 위한 명령줄 도구가 거의 사용되지 않는다. 따라서 많은 상업용 및 비상업용 제품이 있다. 그러나 각 제품마다 설계가 달라 일반적으로 호환성 문제가 발생한다. 마이크로소프트(Visual C++, Platform SDK, .NET 프레임워크 SDK, nmake 유틸리티)를 포함한 Windows의 주요 컴파일러 공급업체 대부분은 여전히 명령줄 도구의 무료 복사본을 제공한다.[15]

6. 3. macOS

현재 macOS 프로그래머는 Xcode와 같은 네이티브 IDE와 이클립스 및 넷빈즈와 같은 오픈 소스 도구 중에서 선택할 수 있다. ActiveState Komodo는 macOS에서 지원되는 독점적 다중 언어 IDE이다.

7. 게임 개발 환경

가정용 게임 콘솔의 공식 개발 환경은 대부분 각 콘솔 제조사에서 제공하는 독자적인 개발 환경을 사용하며, 개발 환경 가격에 라이선스 비용이 포함되는 경우도 있다.[1]

하드웨어개발 환경컴파일러
플레이스테이션 3ProDGSNC
WiiCodeWarriorCodeWarrior Compiler
Xbox 시리즈Visual StudioVC++



최근에는 게임기 성능이 향상되고, 스마트폰 등 모바일 단말기도 게임 플랫폼으로 부상함에 따라, 유니티나 언리얼 엔진과 같은 멀티플랫폼에 대응하는 미들웨어(게임 엔진)도 서드파티 제작의 통합 개발 환경으로 보급되고 있다.[1] 이러한 게임 엔진들은 인디 게임 개발자들의 진입 장벽을 낮추는 데 기여하고 있다.[1]

참조

[1] 뉴스 Interaktives Programmieren als Systems-Schlager https://www.computer[...] Computerwoche
[2] 웹사이트 TOP IDE Top Integrated Development Environment index https://pypl.github.[...] 2023-08-08
[3] 웹사이트 Course CS350 Integrated Development Environments https://www.cs.odu.e[...] Old Dominion University 2018-10-10
[4] 웹사이트 Programming software and the IDE https://web.archive.[...] 2018-10-10
[5] 웹사이트 Eclipse Cookbook - Searching Code https://www.oreilly.[...]
[6] 논문 Solving the Search for Source Code https://dl.acm.org/d[...] 2014
[7] 웹사이트 Introduction - Flycheck 0.18-cvs https://web.archive.[...] 2014-03-10
[8] 서적 The Linux Development Platform: Configuring, Using and Maintaining a Complete Programming Environment 2002
[9] 웹사이트 UnixIsAnIde http://c2.com/cgi/wi[...]
[10] 웹사이트 Use Emacs with Microsoft Visual C++ ... use Emacs as an IDE https://web.archive.[...]
[11] 웹사이트 Emacs: the Free Software IDE | Linux Journal https://www.linuxjou[...]
[12] 웹사이트 The Common Lisp Cookbook - Using Emacs as a Lisp IDE http://cl-cookbook.s[...]
[13] 웹사이트 Emacs as a Perl IDE https://web.archive.[...] 2011-05-11
[14] 웹사이트 Developer FAQ - PostgreSQL wiki http://wiki.postgres[...]
[15] 웹사이트 Chapter 18. Installation from Source Code on Windows https://www.postgres[...] 2021-09-29
[16] 웹사이트 Web-based vs. desktop-based Tools – EclipseSource http://eclipsesource[...] 2018-06-19
[17] 문서 integrated development environment
[18] 문서 MSBuild에서의 솔루션 파일
[19] 문서 프로젝트 파일의 확장자
[20] 웹사이트 EditorConfig 설정 - Visual Studio (Windows) | Microsoft Docs https://docs.microso[...]
[21] 웹사이트 타스크 목록 사용 - Visual Studio (Windows) | Microsoft Docs https://docs.microso[...]
[22] 웹사이트 Visual Studio for Mac | Visual Studio https://visualstudio[...]
[23] 뉴스 Interaktives Programmieren als Systems-Schlager http://www.computerw[...] Computerwoche
[24] 웹사이트 Top IDE index http://pypl.github.i[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com